package org.wsff.tools.api.gateway.error;

/**
 * ThrowableCauseExtractor
 * @author ryan
 * @version Id: ThrowableCauseExtractor.java, v 0.1 2022-01-18 18:23 ryan Exp $$
 */
public interface ThrowableCauseExtractor {
    /**
     * Extracts the cause from the provided <code>Throwable</code>.
     *
     * @param throwable the <code>Throwable</code>
     * @return the extracted cause (maybe <code>null</code>)
     *
     * @throws IllegalArgumentException if <code>throwable</code> is <code>null</code>
     * or otherwise considered invalid for the implementation
     */
    Throwable extractCause(Throwable throwable);
}
